From b2a94de52ae4a940a87d569815b19d3fa92dd32a Mon Sep 17 00:00:00 2001
From: Tom Hochstein <tom.hochstein@nxp.com>
Date: Mon, 16 May 2022 13:45:16 -0500
Subject: [PATCH] LF-7968-01 fix(Makefile): Suppress array-bounds error

The array-bounds error is triggered now in cases where it was silent
before, causing errors like:

```
plat/imx/imx8m/hab.c: In function 'imx_hab_handler':
plat/imx/imx8m/hab.c:64:57: error: array subscript 0 is outside array bounds of 'uint32_t[0]' {aka 'unsigned int[]'} [-Werror=array-bounds]
   64 | #define HAB_RVT_CHECK_TARGET_ARM64      ((unsigned long)*(uint32_t *)(HAB_RVT_BASE + 0x18))
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

The error is a false-positive and is entered as a bug [1]. The problem
is fixed partially in GCC 12 and fully in GCC 13 [2].

The partial fix does not work here because the constant addresses used
are less than the 4kB boundary chosen for the partial fix, so suppress
the error until GCC is upgraded to 13.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578#c39

Upstream-Status: Inappropriate [other]
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Upstream: https://github.com/nxp-imx/imx-atf/commit/058bf0f104115037d03e277f079825ef3659c5b9
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index c87c3ae08..2d6b90f47 100644
--- a/Makefile
+++ b/Makefile
@@ -346,7 +346,7 @@ WARNINGS	+=		-Wshift-overflow -Wshift-sign-overflow \
 endif
 
 ifneq (${E},0)
-ERRORS := -Werror
+ERRORS := -Werror -Wno-error=array-bounds
 endif
 
 CPPFLAGS		=	${DEFINES} ${INCLUDES} ${MBEDTLS_INC} -nostdinc	\
-- 
2.41.0

